#!/bin/bash
source "sKitty.sh"
 HEAD(){ for (( a=2; a<=12; a++ ))
  do
 TPUT $a 1
        $E "\033[1;35m\xE2\x94\x82                                                                                \xE2\x94\x82\033[0m";
  done
 TPUT  3 1
        $E "\033[0m\033[35m+- Scroll customization --------------------- Настройка прокрутки ---------------+\033[0m";
 TPUT 10 1
        $E "\033[0m\033[35m+--- Up \xE2\x86\x91 \xE2\x86\x93 Down Select Enter ---------------------------------------------------+\033[0m";
 MARK;TPUT 1 1
        $E "$c";UNMARK;}
   i=0; CLEAR; CIVIS;NULL=/dev/null
# 32 это расстояние сверху и 48 это расстояние слева
   FOOT(){ MARK;TPUT 13 1
        $E "$c";UNMARK;}
# это управляет кнопками ввер/хвниз
 i=0; CLEAR; CIVIS;NULL=/dev/null
#
  M0(){ TPUT 4 3; $e " Количество строк в памяти для прокрутки    \e[32mscrollback_lines 10000           \e[0m";}
  M1(){ TPUT 5 3; $e " Программа для прокрутки в новом окне       \e[32mscrollback_pager                 \e[0m";}
  M2(){ TPUT 6 3; $e " Отдельный размер истории прокрутки         \e[32mscrollback_pager_history_size    \e[0m";}
  M3(){ TPUT 7 3; $e " Kоличество, прокручиваемое колесиком мыши  \e[32mwheel_scroll_multiplier          \e[0m";}
  M4(){ TPUT 8 3; $e " Минимальное количество строк мыши          \e[32mwheel_scroll_min_lines           \e[0m";}
  M5(){ TPUT 9 3; $e " Kоличество сенсорной панели                \e[32mtouch_scroll_multiplier          \e[0m";}
#
  M6(){ TPUT 11 3; $e " \e[90mExit                                                                        \e[0m";}
LM=6
   MENU(){ for each in $(seq 0 $LM);do M${each};done;}
    POS(){ if [[ $cur == up ]];then ((i--));fi
           if [[ $cur == dn ]];then ((i++));fi
           if [[ $i -lt 0   ]];then i=$LM;fi
           if [[ $i -gt $LM ]];then i=0;fi;}
REFRESH(){ after=$((i+1)); before=$((i-1))
           if [[ $before -lt 0  ]];then before=$LM;fi
           if [[ $after -gt $LM ]];then after=0;fi
           if [[ $j -lt $i      ]];then UNMARK;M$before;else UNMARK;M$after;fi
           if [[ $after -eq 0 ]] || [ $before -eq $LM ];then
           UNMARK; M$before; M$after;fi;j=$i;UNMARK;M$before;M$after;}
   INIT(){ R;HEAD;FOOT;MENU;}
     SC(){ REFRESH;MARK;$S;$b;cur=`ARROW`;}
# Функция возвращения в меню
     ES(){ MARK;$e " ENTER = main menu ";$b;read;INIT;};INIT
  while [[ "$O" != " " ]]; do case $i in
  0) S=M0;SC;if [[ $cur == enter ]];then R;echo -e "
 Количество строк истории, которые нужно сохранить в памяти для прокрутки назад.
 Память выделяется по запросу. Отрицательные числа — это (фактически) бесконечная
 прокрутка. Обратите внимание, что использование очень большой прокрутки не
 рекомендуется, так как это может снизить производительность терминала, а также
 использовать большой объем оперативной памяти.
 Вместо этого рассмотрите возможность использования scrollback_pager_history_size
 Обратите внимание, что при перезагрузке конфигурации, если это изменится,
 это повлияет только на вновь созданные окна, а не на существующие.
\e[32m scrollback_lines 10000\e[0m";ES;fi;;
 1) S=M1;SC;if [[ $cur == enter ]];then R;echo -e "
 Программа для просмотра прокрутки в новом окне.
 Буфер обратной прокрутки передается в эту программу как STDIN.
 Если вы меняете его, убедитесь, что программа, которую вы используете,
 может обрабатывать escape-последовательности ANSI для цветов
 и форматирования текста. INPUT_LINE_NUMBER в приведенной выше командной строке
 будет заменен целым числом, представляющим, какая строка должно быть в верхней
 части экрана. Точно так же CURSOR_LINE и CURSOR_COLUMN будут заменены текущей
 позицией курсора или установлены в 0, если курсора нет.
 Например, при отображении последнего вывода команды.
\e[32m scrollback_pager less --chop-long-lines --RAW-CONTROL-CHARS +INPUT_LINE_NUMBER\e[0m";ES;fi;;
 2) S=M2;SC;if [[ $cur == enter ]];then R;echo -e "
 Отдельный размер истории прокрутки, используемый только для просмотра буфера
 прокрутки (в МБ). Этот отдельный буфер недоступен для интерактивной прокрутки,
 но будет передается программе пейджера при просмотре буфера прокрутки в
 отдельном окне. Текущая реализация хранит данные в кодировке UTF-8, поэтому
 примерно 10000 строк на мегабайт по 100 символов в строке, для чистого ASCII,
 неформатированного текста. Значение нуля или меньше отключает эту функцию.
 Максимально допустимый размер — 4 ГБ.
 Обратите внимание, что при перезагрузке конфигурации, если это изменится,
 это повлияет только на вновь созданные окна, а не на существующие.
 scrollback_fill_enlarged_window нет Заполнить новое пространство строки из
 буфера прокрутки после увеличения окна.
\e[32m scrollback_pager_history_size 0\e[0m";ES;fi;;
 3) S=M3;SC;if [[ $cur == enter ]];then R;echo -e "
 Измените количество, прокручиваемое колесиком мыши.
 Обратите внимание, что это используется только для устройств прокрутки с низкой
 точностью, а не для прокрутки с высокой точностью на таких платформах, как
 macOS и Wayland. Используйте отрицательные числа, чтобы изменить направление
 прокрутки.
\e[32m wheel_scroll_multiplier 5.0\e[0m";ES;fi;;
 4) S=M4;SC;if [[ $cur == enter ]];then R;echo -e "
 Минимальное количество строк, прокручиваемых колесиком мыши.
 Множитель прокрутки wheel_scroll_multiplier вступает в силу только после
 достижения этого числа. Обратите внимание, что это используется только для
 устройств прокрутки с низкой точностью, таких как мыши с колесиком,
 которые прокручиваются очень мало при использовании колеса.
 При отрицательном числе минимум количество строк всегда будет добавляться.
\e[32m wheel_scroll_min_lines 1\e[0m";ES;fi;;
 5) S=M5;SC;if [[ $cur == enter ]];then R;echo -e " Измените количество, прокручиваемое сенсорной панелью. Обратите внимание,
 что это используется только для устройств с высокоточной прокруткой на
 таких платформах, как macOS и Wayland.
 Используйте отрицательные числа, чтобы изменить направление прокрутки.
\e[32m touch_scroll_multiplier 1.0\e[0m";ES;fi;;
#
 6) S=M6;SC;if [[ $cur == enter ]];then R;exit 0;fi;;
 esac;POS;done
